home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / oper_sys / emerald / emrldsys.lha / Language / Malloc / calloc.c next >
C/C++ Source or Header  |  1990-08-16  |  492b  |  33 lines

  1. /* @(#)calloc.c    4.1 (Berkeley) 12/21/80 */
  2. /*    calloc - allocate and clear memory block
  3. */
  4. #define CHARPERINT (sizeof(int)/sizeof(char))
  5. #define NULL 0
  6.  
  7. char *
  8. calloc(num, size)
  9. unsigned num, size;
  10. {
  11.     register char *mp;
  12.     char *malloc();
  13.     register int *q;
  14.     register m;
  15.  
  16.     num *= size;
  17.     mp = malloc(num);
  18.     if(mp == NULL)
  19.         return(NULL);
  20.     q = (int *) mp;
  21.     m = (num+CHARPERINT-1)/CHARPERINT;
  22.     while(--m>=0)
  23.         *q++ = 0;
  24.     return(mp);
  25. }
  26.  
  27. cfree(p, num, size)
  28. char *p;
  29. unsigned num, size;
  30. {
  31.     free(p);
  32. }
  33.